package com.jinyu.dao.mapper.sys;

import com.jinyu.dao.entity.sys.SysRole;
import com.jinyu.dao.entity.sys.SysRoleMenu;
import com.jinyu.dao.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: yangli
 * @Despriction:
 * @Package: com.jinyu.dao.mapper.sys
 * @Date:Created in 2022/5/5 20:47
 * @Modify By:
 */
@Mapper
public interface SysRoleMapper extends BaseMapperPlus<SysRole> {

    /**
     * 新增
     * @date 2022/05/05
     **/
    int insert(SysRole sysRole);

    /**
     * 刪除
     * @date 2022/05/05
     **/
    int delete(@Param("id")long id);

    /**
     * 更新
     * @date 2022/05/05
     **/
    int update(SysRole sysRole);

    /**
     * 查询 根据主键 id 查询
     * @date 2022/05/05
     **/
    SysRole selectByOneByCode(@Param("roleCode") String roleCode);

    /**
     * 查询 分页查询
     * @date 2022/05/05
     **/
    List<SysRole> pageList(int offset, int pagesize);


    int distributionRolesToUser(List<Map<String, Object>> list);

    int deleteByUserCode(@Param("useCode") String useCode);

    List<String> getRoleListByUserCode(@Param("useCode") String useCode);

    int insertRolesPermitToMenu(SysRoleMenu sysRoleMenu);

    /**
     * 查询 同一个角色同一个菜单页面的数量 - t_sys_role_menu
     * @date 2022/05/05
     **/
    int getCountRoleRolesPermitToMenu(@Param("roleId") String roleId, @Param("menuId") String menuId);

    /**
     * 修改 一个角色的菜单页面的权限 - t_sys_role_menu
     * @date 2022/05/05
     **/
    int updateRolesPermitToMenu(SysRoleMenu sysRoleMenu);

    /**
     * 通过角色id和菜单id来删除一条菜单的权限记录 - t_sys_role_menu
     * @date 2022/05/05
     **/
    int deleteByRoleIdAndMenuId(@Param("roleId") String roleId, @Param("menuId") String menuId);

    /**
     * 通过角色编码集合以及菜单页面id获取该用户的所有操作权限,权限以逗号分割 - t_sys_role_menu
     * @date 2022/05/05
     **/
    String getPermitsByRoleCodeAndMenuId(@Param("roleCodelist") List<String> roleCodelist, @Param("pageId") long pageId);
}
